The present invention relates to computerized control systems and, more particularly, distributed control systems that employ multiple, distinct control devices that are connected to one another by way of a network and that interact with one another in a manner allowing for overall control of a process.
A variety of commercial and industrial processes can be automated using one or more industrial controllers (or industrial computers). Generally, an industrial controller is a specialized computer providing input/output (I/O) circuitry attached to sensors and actuators on the machines of the industrial process. The industrial controller executes a control program to read inputs from sensors on the machines implementing the process, and based on the values of those inputs and control logic of the control program, produces outputs to actuators to control the process. Industrial controllers are frequently modular in construction, so that the number of input and output circuits and the processor power can be tailored to the demands of the particular process.
In a centralized model for industrial control, a single central controller (e.g., a specialized computer) coordinates all aspects of the controlled process. Input signals representing values from sensors on the controlled process are communicated to the central controller which executes a control program to develop output signals which are communicated to actuators on the controlled process.
The centralized model is conceptually simple and requires programming only a single device. Nevertheless, the centralized model has some disadvantages. Control systems using this model are particularly vulnerable to failure of the single central controller. Further, communication of all I/O signals to a central location and executing the control program on a single computer, particularly for large control systems, can place undue burdens on processing resources and communication bandwidth. Additionally, a significant cost in automating a process with an industrial controller is the cost of preparing the control program. The same variation in processes that drives the need for the controller architecture to be flexible normally requires a control program to be written specifically for or extensively modified for the process. This development of the control program can be prohibitively expensive for complex processes.
These disadvantages associated with the centralized control model have generated interest in an alternate control model, namely, the distributed control model. In the distributed model for industrial control, the control program is executed by a number of spatially separate controllers intercommunicating only as needed on a common network. By placing these controllers near relevant controlled/monitored devices and/or relevant I/O points, the communication of large numbers of control/monitoring signals and/or large amounts of I/O data is diminished. Having multiple control devices can also reduce the susceptibility of the control system to failure of any one device. Nevertheless, difficulties remain with distributed control systems. In particular, it can be expensive and time-consuming to develop multiple control programs for the different controllers of a distributed control system to appropriately divide the control tasks among the various distributed controllers and coordinating their actions.
The problems related to developing control programs for such distributed control systems have spurred investigation of systems that employ multiple intelligent agents, which also can be termed agents or autonomous cooperative units (ACUs), at the various distributed controllers. In such multi-agent systems (which also can be termed autonomous cooperative systems), a job description is presented to a large number of agents. The agents, based on knowledge of their own capabilities and limitations, bid on portions of the job in response to requests for bids from other agents. Effectively, the agents write their own program, such that control programs are simply developed and the potential exists for control programs to be quickly changed as new circumstances develop, such as changes in the control problem or the loss of particular agents and/or equipment. Such multi-agent systems are applicable to a wide variety of situations, and a description of one exemplary multi-agent system is described, for example, in the aforementioned patent applications.
The design of multi-agent systems borrows from a market model of the economy in which many different autonomous individuals organize themselves to produce complex products or services without central control. At a high-level, the agents of multi-agent systems share many similarities with one another in terms of their operation. This is true both with respect to different agents of the same multi-agent system, and with respect to the agents of different systems. For example, regardless of the type of machines that a given multi-agent system is intended to control, the agents of the multi-agent system nevertheless interact with one another in the manner described above involving bidding on portions of a job.
However, despite the overall high-level operational similarities among the agents of multi-agent systems, the behavior of agents of necessity still typically varies from system to system depending upon the application, as well as varies from agent to agent in each given system. Because different processes employ a wide variety of specific machines, and because the particular machines of any given process can also differ greatly from one another, it is impossible to cost-effectively develop a single, standard agent that would be capable of interacting with any and every arbitrary machine of any and every given system. In particular, the control programs or algorithms governing different machines can vary greatly from one machine to another. Likewise, the number, type and characteristics of sensor signals and actuator signals vary greatly from machine to machine.
In conventional distributed control systems that employ controllers that are not agent-based, particularly industrial control systems of this type, the controllers often are programmed with application-specific control programs that take the form of complicated “ladder logic” programs. These ladder logic programs are intended to govern the relationships between the controllers and the specific machines assigned to be controlled by those controllers, but are not generally intended to govern high-level interactions between the multiple controllers of the distributed control system. Such ladder logic control programs are ubiquitous not only for historical reasons but also because of the great flexibility afforded by such programs. Indeed, numerous such programs are in existence for implementation on controllers in a wide variety of applications and circumstances.
Given that the use of ladder logic programs is well-known and that many ladder logic programs for a wide variety of applications are already in existence, and given that (as discussed above) the tailoring of agents for particular applications is complicated and expensive, it would be desirable if high-level agent-type programming could be somehow implemented onto controllers employing such ladder logic control programs such that the agent-type programming and ladder logic control programs were integrated with one another to form composite agents on those controllers. Such integration would make it possible to achieve distributed control systems that provided the benefits of multi-agent systems in terms of the high-level interaction and collaboration among controllers to address the needs of the controlled process and yet, at the same time, retained the benefits associated with using existing ladder logic control programs and programming techniques to tailor controllers for operation in relation to the particular machines controlled by those controllers.